package com.yd.tool;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 时间格式转换
 * @author shangruihua
 *
 */
public class UtsDateToLong {
	/**
	 * long字符串转换成yyyy-MM-dd HH:mm:ss格式输出
	 * @param time long类型的值
	 * @return String字符串 yyyy-MM-dd HH:mm:ss
	 */
	public static String getLongToYyyyMmDdHhMmSs(long time) {
		Date date = new Date(time);
		SimpleDateFormat formattter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return formattter.format(date);
	}
	/**
	 * long字符串转换成yyyy-MM-dd HH:mm:ss格式输出
	 * @param time long类型的值
	 * @return String字符串 yyyy-MM-dd
	 */
	public static String getLongToYyyyMmDd(long time) {
		Date date = new Date(time);
		SimpleDateFormat formattter = new SimpleDateFormat("yyyy-MM-dd");
		return formattter.format(date);
	}
	/**
	 * 字符串转换成时间
	 * @param time String类型的字符串时间
	 * @param ymdhms String类型的字符串 yyyy-MM-dd HH:mm:ss
	 * @return 返回date类型的时间
	 */
	public static Date getStringToDate(String time,String ymdhms){//yyyy-MM-dd HH:mm:ss
		Date date=null; 
		SimpleDateFormat formatter=new SimpleDateFormat(ymdhms); 
		try {
			date=formatter.parse(time);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}
	/**
	 * string类型转换为string类型 string YyyyMmDd
	 * @param strTime String类型的字符串时间
	 * @return 返回string类型时间 取yyyy-MM-d
	 */
	public static String getStringToStringYyyyMmDd(String strTime){
		long date=getStringToLongYyyyMmDd(strTime);
		return getLongToYyyyMmDd(date);
	}
	/**
	 * string类型转换为string类型 string YyyyMmDdHhMmSs
	 * @param strTime String类型的字符串时间
	 * @return 返回string类型时间 取yyyy-MM-d
	 */
	public static String getStringToStringYyyyMmDdHhMmSs(String strTime){
		long date=getStringToLongYyyyMmDdHhMmSs(strTime);
		return getLongToYyyyMmDd(date);
	}
	/**
	 * string类型转换为long类型 string yyyy-MM-dd
	 * @param strTime String类型的字符串时间
	 * @return 返回long类型时间 取yyyy-MM-d
	 */
	public static long getStringToLongYyyyMmDd(String strTime){
		return getStringToLong(strTime,"yyyy-MM-dd");
	}
	/**
	 * string类型转换为long类型 string yyyy-MM-dd HH:mm
	 * @param strTime String类型的字符串时间
	 * @return 返回long类型时间 取yyyy-MM-d HH:mm
	 */
	public static long getStringToLongYyyyMmDdHHmm(String strTime){
		return getStringToLong(strTime,"yyyy-MM-dd HH:mm");
	}
	/**
	 * string类型转换为long类型 string yyyy-MM-dd HH:mm:ss
	 * @param strTime strTime String类型的字符串时间
	 * @return 返回long类型时间 取yyyy-MM-dd HH:mm:ss
	 */
	public static long getStringToLongYyyyMmDdHhMmSs(String strTime){
		return getStringToLong(strTime,"yyyy-MM-dd HH:mm:ss");
	}
	/**
	 * string类型转换为long类型
	 * @param strTime String类型的字符串时间
	 * @param ymdhms String类型的字符串 例yyyy-MM-dd HH:mm:ss
	 * @return 返回long类型时间
	 */
	public static long getStringToLong(String strTime,String ymdhms){
 		Date date = getStringToDate(strTime,ymdhms); // String类型转成date类型
 		if (date == null) {
 			return 0;
 		} else {
 			long currentTime = getDateToLong(date); // date类型转成long类型
 			return currentTime;
 		}
 	}
	/**
	 * date类型转换为long类型
	 * @param date date类型的时间
	 * @return 返回long类型的时间
	 */
	public static long getDateToLong(Date date) {
	 	return date.getTime();
	}
	
	/**
	 * 是否大于当前 根据 20160917 对比当前时间 返回 0小于 1 大于
	 * @param str
	 * @return
	 */
	public static int getIddDq(String str){
		long strD=0;
		if(str.length()==8){
			strD=getStringToLongYyyyMmDd(str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8));
		}else{
			strD=getStringToLongYyyyMmDdHHmm(str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8)+" "+str.substring(8,10)+":"+str.substring(10,12));
		}
		
		long dqD=System.currentTimeMillis();
		if(strD>dqD){
			return 1;
		}
		return 0;
	}


	
	
//	 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
//     String str="20110823";
//     Date dt=sdf.parse(str);
//     Calendar rightNow = Calendar.getInstance();
//     rightNow.setTime(dt);
//     
//     //rightNow.add(Calendar.YEAR,1);//日期减1年
//     
//     rightNow.add(Calendar.MONTH,3);//日期加3个月
//     
//     //rightNow.add(Calendar.DAY_OF_YEAR,10);//日期加10天
//     
//     Date dt1=rightNow.getTime();
//     
//     String reStr = sdf.format(dt1);
//     
//     System.out.println(reStr);
	
	
	
	
	
	
	
	
}
